package com.senlingspace.system.mapper;

import com.senlingspace.system.domain.SlkjCustomerAddress;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 客商地址表 数据层
 *
 * @author lebronjames
 * @date 2024/09/30
 */
public interface SlkjCustomerAddressMapper {

    /**
     * 根据地址ID查询地址
     *
     * @param addressId 地址ID
     * @return 地址信息
     */
    SlkjCustomerAddress selectById(Long addressId);

    /**
     * 根据客户ID查询地址
     *
     * @param customerId 客户ID
     * @return 地址列表
     */
    List<SlkjCustomerAddress> selectByCustomerId(Long customerId);

    /**
     * 插入地址信息
     *
     * @param address 地址信息
     * @return 插入的记录数
     */
    int insert(SlkjCustomerAddress address);

    /**
     * 根据地址ID更新地址信息
     *
     * @param address 地址信息
     * @return 更新的记录数
     */
    int updateById(SlkjCustomerAddress address);

    /**
     * 根据地址ID删除地址信息
     *
     * @param addressId 地址ID
     * @return 删除的记录数
     */
    int deleteById(Long addressId);

    /**
     * 重置默认地址
     *
     * @param customerId
     * @return int
     */
    int resetDefaultAddress(Long customerId);

    /**
     * 设置默认地址
     *
     * @param customerId
     * @param addressId
     * @return int
     */
    int setDefaultAddress(@Param("customerId") Long customerId, @Param("addressId") Long addressId);

    /**
     * 获取默认地址
     *
     * @param customerId
     * @return {@link SlkjCustomerAddress }
     */
    SlkjCustomerAddress getDefaultAddress(Long customerId);

}
